Information is typically represented using a structured description. Structured data includes content such as databases, spreadsheets, address books, configuration parameters, financial transactions and technical drawings. The Extensible Markup Language, or XML, is a standard text-based representation of structured data on the World Wide Web, and has become the most popular format to represent structured data. An example XML content is as follows:
<person><name>John Smith</name><street>24 Main Street</street><city>Old Town</city><state>TX</state><zip>75039</zip></person>
One particular application of XML is for representing vector graphics data. Vector graphics describes two-dimensional graphics, and allows for three types of graphic objects: vector graphic shapes (e.g., paths consisting of straight lines and curves), images and text. Graphical objects can be grouped, styled, transformed and composited into previously rendered objects. Vector graphics drawings can be dynamic and interactive.
One organization (W3C) has defined a standard vector graphics language in XML, referred to as the Scalable Vector Graphics or SVG, W3C Consortium, Scalable Vector Graphics Specification, WWW Candidate Recommendation, 2000.
An example of structured SVG content for representing vector graphics data is as follows:
<svg width=“5cm” height=“5cm”xmlns=“http://www.w3.org/2000/svg”><desc>A group with two rectangles</desc><g id=“group1” fill=“red”><rect x=“1cm” y=“1cm” width=“1cm” height=“1cm”/><rect x=“3cm” y=“1cm” width=“1cm” height=“1cm”/></g></svg>
XML was designed to be useful in the World Wide Web environment and assumes that sufficient bandwidth exists. However, relatively low-bandwidth communications (e.g., mobile communication applications) require a form of incremental representation, to decrease latency of a user agent's processing of the data, and to decrease memory requirements. Streaming, or substantially continuous data transmission, is crucial for most applications that require the delivery of large content, e.g., a large cartoon animation represented using XML.
Prior to this invention problems have existed in converting formatted data to a form that can be streamed with minimal change to the original content. In addition, problems existed in excessive bandwidth and storage requirements for transmitting and processing large structured content.
Prior attempts to address these problems include the following.
The streaming of non-structured video and audio data over various data networks is the intent of a set of standards and products (e.g., MPEG-4 and RealNetworks™). For example, audio/video players are usually designed to begin playing received content from the Internet without requiring one to first download the entire file.
Another approach, Macromedia Flash™ (www.macromedia.com), presents an approach for the streaming of vector graphics content as binary data. Flash™ defines a “display list” method consisting of a set of commands for each frame, and may thus be viewed as an alternative to the structured representation of graphics content.
U.S. Pat. No. 6,057,854, “System and method of providing interactive vector graphics over a network”, John Davis, Jr. And Scott M. Glazer, discloses a client-server based system where an interactive vector object that is downloadable over a network includes a vector object and an active area defined by the vector object. A vector graphics network file, in connection with the data, renders the image of the vector object on a client system that is connectable to the network.
Another approach, MPEG-7 BiM (Binary format for MPEG-7 ISO/IEC 15938-1), is a binary format for the compression and streaming of XML Documents. MPEG-7 BiM is based on dividing a large XML document into pieces and delivering them separately to the client. BiM defines a compression method, and does not consider how to extend the structure content to allow streaming.
A method for streaming XML data is presented in WO 01/26373 A2, “Method and Apparatus for Streaming XML Content”, Raymond J. Krasinski. Each XML document is decomposed and encoded as a collection of sub-trees. Each sub-tree from the larger XML document tree can be parsed and validated by the XML receiver as if it is and independent tree. The structure node indicates the relationship of the sub-tree to other sub-trees, thereby allowing the XML receiver to reconstruct the full tree.
A method for transferring data that is somewhat analogous to streaming is the HTML Push/Pull technology. In a Server Push operation the server sends down a packet of data and the browser displays the data but leaves the connection open. Whenever the server desires it sends more data and the browser displays the data, still leaving the connection open. In a Client Pull operation the server sends down a block of data, including a directive (in the HTTP response or the document header) that specifies “reload this data in x seconds”, or “go load another URL in y seconds”. After the specified amount of time has elapsed, the client performs the directed operation, either reloading the current data or retrieving new data.
In the Server Push operation the HTTP connection is held open for an indefinite period of time (until the server knows it is done sending data to the client and sends a terminator, or until the client interrupts the connection). In the Client Pull operation the HTTP connections are never held open; rather, the client is instructed when to open a new connection, and what data to fetch when it does so.
The Synchronized Multimedia Integration Language (SMIL) (http://www.w3.org/TR/smil20/) enables the simple authoring of interactive audiovisual presentations. SMIL is typically used for multimedia presentations that integrate streaming audio and video with images, text or any other media type.
None of these prior art approaches has been found to adequately solve the problem providing structured data in a form that allows streaming in low bandwidth and other environments.